import pandas as pd
from pandas import DataFrame
import numpy as np
from sklearn import linear_model
import matplotlib.pyplot as plt
import sys
import os
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf_8')

datafile = './文本/客运量_1-16.csv' 
datafile2 = './文本/货运量_1-16.csv' 
data = pd.DataFrame(pd.read_csv(datafile))
data2 = pd.DataFrame(pd.read_csv(datafile2))

data = data.loc[data['labels'] == 1] #第1类
#data = data[data['labels'] == 2] #第2类
#data = data[data['labels'] == 3] #第3类
#data = data[data['labels'] == 4] #第4类

data2 = data2.loc[data2['labels'] == 1] #第1类
#data2 = data2[data2['labels'] == 2] #第2类
#data2 = data2[data2['labels'] == 3] #第3类
#data2 = data2[data2['labels'] == 4] #第4类

data = data.drop(['机场名'], axis=1)#删除第一列机场名
data = data.drop(['labels'], axis=1)#删除labels列
data = np.array(data).tolist()

data2 = data2.drop(['机场名'], axis=1)#删除第一列机场名
data2 = data2.drop(['labels'], axis=1)#删除labels列
data2 = np.array(data2).tolist()
x = [2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019]
co = [] 
Y = []
X = []
Z = []
for i in range(len(x)): #将每一个客运量放到列表里
    co = [data[0][i]]
    Y.append(co)
for i in range(len(x)): #将年份放到列表里
    co = [x[i]]
    X.append(co)
for i in range(len(x)): #将每一个货运量放到列表里
    co = [data2[0][i]]
    Z.append(co)

#客运量
repr = linear_model.LinearRegression() #使用线性回归进行预测
repr.fit(X,Y) #训练模型
y_pre = 2020*repr.coef_+repr.intercept_
print('-------客运量预测相关数据-------')
print('斜率为: %f'%(repr.coef_)) #输出斜率
print('截距为: %f'%(repr.intercept_)) #输出截距
print('2020的预测值为: %f'%(y_pre))

#客运量折线图
plt.plot(X,Y)
plt.xlabel('Years')
plt.ylabel('Values')
plt.show()

#货运量
repr2 = linear_model.LinearRegression()
repr2.fit(X,Z)
y_pre2 = 2020*repr2.coef_+repr2.intercept_
print('-------货运量预测相关数据--------')
print('斜率为: %f'%(repr2.coef_))
print('截距为: %f'%(repr2.intercept_))
print('2020预测值为: %f'%(y_pre2))

#货运量折线图
plt.plot(X,Z)
plt.xlabel('Years')
plt.ylabel('Values')
plt.show()